package cn.felord.common.mapper;

import cn.felord.common.bean.Menu;
import cn.felord.common.entity.SysResources;
import cn.felord.common.entity.dto.ResourceRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 资源表 Mapper 接口
 * </p>
 *
 * @author dax
 * @since 2018 -09-13
 */
public interface SysResourcesMapper extends BaseMapper<SysResources> {
    /**
     * URI 鉴权 初始化注册表.
     * <p>
     * 通过事件注入 对相关三表的增删改都触发事件
     *
     * @return the list
     * @see cn.felord.common.security.CustomFilterInvocationSecurityMetadataSource
     */
    List<ResourceRole> initUrlRoleStorage();


    /**
     * Find menu linked hash set.
     *
     * @param userId the user id
     * @return the linked hash set
     */
    LinkedHashSet<Menu> findMenu(@Param("userId") String userId);

    /**
     * Find menu by parent id list.
     *
     * @param parentId the parent id
     * @return the list
     */
    List<Map<String,Object>> findMenuByParentId(@Param("parentId") String parentId);
}
